@echo off
:: 请求管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
    echo 需要管理员权限才能运行此脚本。
    echo 正在请求管理员权限...
    powershell -Command "Start-Process -FilePath '%~dpnx0' -Verb RunAs"
    exit /b
)

echo 正在以管理员权限运行设置脚本...

:: 获取当前用户名
for /f "tokens=*" %%u in ('whoami') do set CURRENT_USER=%%u
echo 当前用户: %CURRENT_USER%

:: 配置URL访问控制列表 (ACL)
echo 配置URL访问控制...
netsh http add urlacl url=http://localhost:5000/ user=%CURRENT_USER% listen=yes
netsh http add urlacl url=https://localhost:5001/ user=%CURRENT_USER% listen=yes
netsh http add urlacl url=http://+:5000/ user=%CURRENT_USER% listen=yes
netsh http add urlacl url=https://+:5001/ user=%CURRENT_USER% listen=yes

:: 创建并信任开发证书
echo 创建开发证书...
dotnet dev-certs https --clean
dotnet dev-certs https --trust

:: 添加防火墙规则
echo 配置防火墙规则...
netsh advfirewall firewall add rule name="ASP.NET Core Web App (HTTP 5000)" dir=in action=allow protocol=TCP localport=5000
netsh advfirewall firewall add rule name="ASP.NET Core Web App (HTTPS 5001)" dir=in action=allow protocol=TCP localport=5001

echo 设置完成！现在可以使用admin_start.bat启动应用。
echo 按任意键继续...
pause 